// 登录页面
const app = getApp();

Page({
  data: {
    isWxLoading: false,
    isAgreePrivacy: false,  // 是否同意隐私政策
    currentYear: new Date().getFullYear() // 当前年份
  },
  
  onLoad() {
    // 检查是否已登录
    if (app.globalData.isLogin) {
      wx.showToast({
        title: '您已登录',
        icon: 'success',
        duration: 1500,
        success: () => {
          setTimeout(() => {
            wx.navigateBack();
          }, 1500);
        }
      });
    }
  },
  
  // 隐私政策勾选状态变化
  onPrivacyChange(e) {
    this.setData({
      isAgreePrivacy: e.detail.value.length > 0
    });
  },
  
  // 显示用户协议
  showUserAgreement() {
    wx.navigateTo({
      url: '/pages/common/webview?title=用户协议&url=' + encodeURIComponent('https://sdlxy.edu.cn/user-agreement.html')
    });
  },
  
  // 显示隐私政策
  showPrivacyPolicy() {
    wx.navigateTo({
      url: '/pages/common/webview?title=隐私政策&url=' + encodeURIComponent('https://sdlxy.edu.cn/privacy-policy.html')
    });
  },
  
  // 获取用户信息并登录
  getUserProfile() {
    // 检查是否同意隐私政策
    if (!this.data.isAgreePrivacy) {
      wx.showToast({
        title: '请先同意用户协议和隐私政策',
        icon: 'none'
      });
      return;
    }
    
    // 设置加载状态
    this.setData({
      isWxLoading: true
    });
    
    // 调用getUserProfile获取用户信息
    wx.getUserProfile({
      desc: '用于完善会员资料', // 声明获取用户个人信息后的用途
      success: (profileRes) => {
        console.log('获取用户信息成功', profileRes);
        
        // 保存微信原始用户信息到全局状态
        app.globalData.wxUserInfo = profileRes.userInfo;
        
        // 获取用户信息成功后，调用微信登录
        wx.login({
          success: (loginRes) => {
            if (loginRes.code) {
              // 发送 code 和用户信息到后台
              app.globalData.api.user.wxLogin({
                code: loginRes.code,
                rawData: profileRes.rawData,
                signature: profileRes.signature,
                encryptedData: profileRes.encryptedData,
                iv: profileRes.iv
              })
                .then(result => {
                  if (result.code === 200 && result.data) {
                    // 登录成功
                    this.handleLoginSuccess(result.data);
                  } else {
                    // 微信登录失败
                    wx.showToast({
                      title: '微信登录失败，请重试',
                      icon: 'none'
                    });
                  }
                })
                .catch(err => {
                  console.error('微信登录失败', err);
                  wx.showToast({
                    title: '微信登录失败，请重试',
                    icon: 'none'
                  });
                })
                .finally(() => {
                  this.setData({
                    isWxLoading: false
                  });
                });
            } else {
              console.error('获取微信code失败', loginRes);
              this.setData({
                isWxLoading: false
              });
              wx.showToast({
                title: '微信登录失败，请重试',
                icon: 'none'
              });
            }
          },
          fail: (err) => {
            console.error('微信登录接口调用失败', err);
            this.setData({
              isWxLoading: false
            });
            wx.showToast({
              title: '微信登录失败，请重试',
              icon: 'none'
            });
          }
        });
      },
      fail: (err) => {
        console.log('获取用户信息失败', err);
        this.setData({
          isWxLoading: false
        });
        wx.showToast({
          title: '您取消了授权',
          icon: 'none'
        });
      }
    });
  },
  
  // 处理登录成功
  handleLoginSuccess(data) {
    // 存储用户信息
    wx.setStorageSync('userInfo', data.userInfo);
    wx.setStorageSync('token', data.token || '');
    
    // 更新全局状态
    app.globalData.userInfo = data.userInfo;
    app.globalData.isLogin = true;
    app.globalData.token = data.token;
    
    // 提示
    wx.showToast({
      title: '登录成功',
      icon: 'success'
    });
    
    // 返回上一页
    setTimeout(() => {
      wx.navigateBack();
    }, 1500);
  }
}) 